<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
 * 读取配置数据
 *
 * @access	public
 * @param	string	
 * @return	mixed
 */
if ( ! function_exists('setting'))
{
	function setting($key)
	{
		$ci = &get_instance();
		return 	$ci->settings->item($key);
	}
}

// ------------------------------------------------------------------------

/**
 * 更新缓存
 *
 * @access	public
 * @param	array
 * @param	string
 * @return	void
 */
if ( ! function_exists('update_cache'))
{
	function update_cache($array, $fix = '')
	{
		$ci = &get_instance();
		$ci->load->model('cache_model');
		$array = is_array($array) ? $array : array($array);
		foreach ($array as $v)
		{
			$method = 'update_' . $v . '_cache';
			$ci->cache_model->$method($fix);
		}
	}
}
if ( ! function_exists('url'))
{
	function url($url){
		echo site_url($url);
	}
}

//验证email地址的正确性
if ( ! function_exists('check_email'))
{
	function check_email($email)
	{
	    $chars = "/^([a-z0-9+_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,6}\$/i";
		if (strpos($email, '@') !== false && strpos($email, '.') !== false){
			if (preg_match($chars, $email)){
				//验证通过
				return $email;
			}else{
				return false;
			}
		}else{
			return false;
		}
		
	}
}

//验证手机号的正确性
if ( ! function_exists('check_mobile'))
{
	function check_mobile($mobile)
	{
	   $strlen = strlen($mobile);
	   if($strlen!=11){
			return false;
	   }
	   if(preg_match("/^13[0-9]{1}[0-9]{8}$|147[0-9]{8}$|15[012357689]{1}[0-9]{8}$|17[0123456789]{1}[0-9]{8}$|18[0123456789]{1}[0-9]{8}$|189[0-9]{8}$/",$mobile)){    
		//验证通过
		 return $mobile;
		}else{    
			//手机号码格式不对    
			return false;
		}
	}
}
// ------------------------------------------------------------------------
/**************************************************************
 *
 *    将数组转换为JSON字符串（兼容中文）
 *    @param  array   $array      要转换的数组
 *    @return string      转换得到的json字符串
 *    @access public
 *
 *************************************************************/
function JSON($array){
	arrayRecursive($array, 'urlencode', true);
	$json = json_encode($array);
	return urldecode($json);
}

//json_encode 中文处理
/**************************************************************
	   *
	   *    使用特定function对数组中所有元素做处理
	   *    @param  string  &$array     要处理的字符串
	   *    @param  string  $function   要执行的函数
	   *    @return boolean $apply_to_keys_also     是否也应用到key上
	   *    @access public
	   *
 *************************************************************/
function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
	static $recursive_counter = 0;
	if (++$recursive_counter > 1000) {
		die('possible deep recursion attack');
	}
	foreach ($array as $key => $value) {
		if (is_array($value)) {
			arrayRecursive($array[$key], $function, $apply_to_keys_also);
		} else {
			$array[$key] = $function($value);
		}
 
		if ($apply_to_keys_also && is_string($key)){
			$new_key = $function($key);
			if ($new_key != $key) {
				$array[$new_key] = $array[$key];
				unset($array[$key]);
			}
		}
	}
	$recursive_counter--;
} 
/**
 * 手机格式化
 * 如：18357212541 格式化成 183****2541
 */
function mobile_formart($mobile){
    if($mobile){
        return substr_replace($mobile,'****',3,4);
    }else{
        return '';
    }
}
/**
 * 邮箱格式化
 * 如：1638025412@qq.com 格式化成 163***12@qq.com
 */
function email_formart($email){
    if(strpos($email,"@")){
        //查找“@”的位置
        $pos = strpos($email,"@");
        $end_str = substr($email, $pos-1);
        $start_str = substr($email, 0,3);
        return $start_str.'****'.$end_str;
    }else{
        return '';
    }
}

/**
 * 用户名格式化
 * 如：1638025412@qq.com 格式化成 163***12@qq.com
 */
function name_formart($name){
    if($name){
        $start = mb_substr($name, 0, 2, 'utf-8');
        $end = mb_substr($name, -2, 2, 'utf-8');
        return $start.'***'.$end;
    }else{
        return '';
    }
}
/**
 * 用户昵称格式化
 * 如：大主宰 格式化成 大****宰
 */
function nick_formart($name){
    if($name){
        $start = mb_substr($name,0,1,'utf8');
        $end = mb_substr($name,-1,1,'utf8');
        return $start.'**'.$end;
    }else{
        return '';
    }
}
/**
 * 根据用户所投金额匹配所得体验积分值
 * @param type $exper
 * @param type $amount
 */
function match_exper($exper = array(),$amount){
    if($amount){
        foreach ($exper as $key => $val) {
            if($amount >= $val['min'] && $amount <= $val['max']){
                return $val['exper'];
            }
        }
    }
}
if ( ! function_exists('front_url'))
{
	function front_url($uuid,$controller,$action){
            
            $site_url = site_url($controller."/".$uuid.($action ? "/".$action : ""));
            echo $site_url;
         
	}
}

//打印函数
function p($arr){
	echo "<pre>";
	print_r($arr);
	echo "</pre>";
}

//生成订单号OrdId
if ( ! function_exists('MakeOrdId'))
{
    function MakeOrdId($user_id) {
        $nid = $user_id+1000000;
        $OrdId = $nid.date('ymdHis').rand(0,9); //20位交易流水号（唯一）
        return $OrdId;
    }	
}

function format_amount($amount){
    if($amount == 0)return $amount;
    if($amount < 10000){
        return number_format($amount);
    }
    return sprintf("%.2f", $amount/10000)."万";
    
}
